import React, { Component } from 'react'

// static getDerivedStateFromProps 生命周期
// 作用: 用父组件传递过来的props 属性来更新自身的state 数据
// 执行时间: 初始化执行 , 数据更新执行, 在constructor 之后, render之前
// 注意: 返回null 则表示不更新任意自身的state ,返回对象则会更新自身的state, 会和原state进行合并
export default class Son extends Component {
    state = {
        username: '张三',
        num: 50
    }
    static getDerivedStateFromProps(props, state) {
        console.log('getDerivedStateFromProps');
        console.log('props', props);
        console.log('state', state);
        // return null
        if (state.username) {
            let obj = {};
            for (let key in props) {
                if (key != 'username') {
                    obj[key] = props[key]
                }
            }
            return obj
        } else {
            return props
        }

    }
    render() {
        return (
            <div>Son--{this.state.username}</div>
        )
    }
}
